Como utilizar update-alternatives para cambiar entre varias versiones de un programa.
Hay ocasiones en las que podemos tener un programa con varias versiones entre las que queremos alternar, por ejemplo podemos tener python 3.11 y python 3.12, y en según que situaciones podemos necesitar una versión u otra, update-alternatives nos permite hacer que cuando tecleemos "python" en la consola nos referencie a una versión u otra.
Si queremos ver todos los programas que hay configurados en update-alternatives lo hacemos con el siguiente comando:
# update-alternatives --get-selections
Si queremos ver las versiones que tiene configuradas un programa concreto lo hacemos con:
# update-alternatives --display python3
Si queremos cambiar la versión por defecto de un programa lo hacemos con:
# update-alternatives --config python3
Se nos mostrarán las versiones disponibles y seleccionaremos la que queramos indicando el número correspondiente:
Si tenemos un programa con varias versiones y no está en el update-alternatives podemos añadirlo de la siguiente manera:
# update-alternatives --install COMANDO_GENERICO NOMBRE_CONFIGURACION VERSION_ESPECIFICA PRIORIDAD
Un ejemplo para añadir dos versiones de pip sería la siguiente:
# update-alternatives --install /usr/bin/pip pip /usr/bin/pip3.11 1
# update-alternatives --install /usr/bin/pip pip /usr/bin/pip3.14 2
Si por alguna razón hay alguna de las configuraciones que ya no está disponible en el sistema podemos borrarla con el siguiente comando:
# update-alternatives --remove python3 /usr/local/bin/python3.14
En OpenSUSE tenemos el sistema alts a mayores de update-alternatives para manejar las versiones.
Para saber si un programa esta usando alts solo tenemos que verificar si el enlace simbólico está apuntando a alts:
Para listar todas las configuraciones de alts lo hacemos con:
alts -l
Si solo queremos listar las versiones de un programa:
alts -l pip
Si queremos establecer una nueva versión:
alts -n pip -p 312
En el parámetro -p se indica la prioridad de la versión que queremos establecer.
update-alternatives | alts | versiones